package mdb.com.vn.utils;

import java.util.Collection;

import org.apache.commons.lang.StringUtils;

public class TextUtil {

	public static final String LOAN_MODULE = "01";
	public static final String SME_MODULE = "02";
	public static final String IB_MODULE = "03";
	public static final String CARD_MODULE = "04";

	public static final String PROCESSED = "P";
	public static final String UNKNOWN = "U";
	public static final String REJECTED = "R";

	public static final String GROUP1 = "Tiền vay và tiền gửi";
	public static final String GROUP2 = "Chuyển khoản trực tuyến và tiêu dùng thẻ";

	public static String getStringAwards(int awards) {
		String awardsName = "";
		switch (awards) {
		case 1:
			awardsName ="Giải Nhất - 5 lượng vàng";
			break;
		case 2:
			awardsName ="Giải Nhì - 1 lượng vàng";
			break;
		case 3:
			awardsName ="Giải Ba - Iphone 5S";
			break;
		case 4:
			awardsName ="Giải Tư - 1 chỉ vàng";
			break;
		case 5:
			awardsName ="Giải IB và Thẻ - 1 chỉ vàng";
			break;
		}
		return awardsName;
	}

	public static String toStringOrNull(Object obj) {
		return (null == obj) ? null : obj.toString();
	}

	public static String toStringOrEmpty(Object obj) {
		return (null == obj) ? "" : obj.toString();
	}

	public static StringBuilder addIfNotNull(StringBuilder sb, Object... objs) {
		for (Object obj : objs) {
			if (null != obj) {
				sb.append(obj.toString());
			} else {
				break;
			}
		}
		return sb;
	}

	public static StringBuilder addAllIfNotNull(StringBuilder sb,
			Object... objs) {
		for (Object obj : objs) {
			if (null != obj) {
				sb.append(obj.toString());
			}
		}
		return sb;
	}

	public static boolean isNotEmpty(String s) {
		return (s != null && s.length() > 0);
	}

	public static boolean isNotEmpty(Collection<?> c) {
		return (c != null && c.size() > 0);
	}

	public static boolean isNotEmpty(Object obj) {
		return (obj instanceof String) ? (obj.toString().length() > 0)
				: (obj != null);
	}

	public static boolean isEmpty(String s) {
		return (s == null || s.length() == 0);
	}

	public static boolean isEmpty(Collection<?> c) {
		return (c == null || c.isEmpty());
	}

	public static boolean isEmpty(Object obj) {
		return (obj instanceof String) ? (obj.toString().length() == 0)
				: (obj == null);
	}

	public static boolean isNotWhitespaced(String s) {
		return (s != null && s.trim().length() > 0);
	}

	public static boolean isWhitespaced(String s) {
		return (s == null || s.trim().length() == 0);
	}

	public static boolean isInBound(Collection<?> c, int idx) {
		return (c != null && idx >= 0 && c.size() > idx);
	}

	public static boolean isInBound(Collection<?> c, Number idx) {
		return (idx != null && isInBound(c, idx.intValue()));
	}

	public static int countedString(String input, String delimiter) {
		int countByComa = StringUtils.countMatches(input, delimiter);
		if (countByComa == 0) {
			return StringUtils.countMatches(input, " ");
		} else {
			return countByComa;
		}
	}

	public static int countedStringPlus(String input, String delimiter) {
		int countComa = TextUtil.countedString(input, ",");
		if (countComa == 0 && input == null) {
			return 0;
		} else {
			return countComa + 1;
		}
	}
}
